# -*- coding: utf-8 -*-

#    OriginDB
#    Copyright (C) 2010  Jason Power <power.jg@gmail.com>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

import pybel

from PyQt4 import QtGui

namefilters = ["Sdf molfile (*.sdf *.mol)",
			   "Cml file (*.cml)"]


def loadFile(parent):
	dialog = QtGui.QFileDialog(parent, "Choose a file to import structure")
	dialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)
	dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
	dialog.setNameFilters(namefilters)
	
	if dialog.exec_():
		filename = dialog.selectedFiles()[0]
		if str(filename).lower().endswith('sdf') or str(filename).lower().endswith('mol'):
			mol = pybel.readstring("sdf", file(filename).read())
		elif str(filename).lower().endswith('cml'):
			mol = pybel.readstring("cml", file(filename).read())
		return mol

	return None


def saveFile(parent, mol):

	dialog = QtGui.QFileDialog(parent, "Select file to save structure")
	dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
	dialog.setFileMode(QtGui.QFileDialog.AnyFile)
	dialog.setNameFilters(namefilters)

	filename = ""
	typ = ""
	if dialog.exec_():
		filename = dialog.selectedFiles()[0]
		if str(filename).lower().endswith('sdf') or str(filename).lower().endswith('mol'):
			typ = "sdf"
		elif str(filename).lower().endswith('cml'):
			typ = "cml"

	if filename and typ:
		outstring = mol.write(typ)
		f = file(filename, 'w')
		f.write(outstring)
		f.close()